{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "%load_ext autoreload\n",
    "%autoreload 2\n",
    "\n",
    "import sys \n",
    "from os import getcwd, path\n",
    "sys.path.append(path.dirname(getcwd()))\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sb\n",
    "import pandas as pd\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from varcode.effects import Substitution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from utils import data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "impact_gene_names = pd.read_csv(path.join(data.REPO_DATA_DIR, \"impact_gene_list.csv\")).Hugo_symbol.tolist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from pyensembl import EnsemblRelease\n",
    "ensembl = EnsemblRelease(75)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Multiple IDs for gene BTK (['ENSG00000010671', 'ENSG00000268897'])\n",
      "Multiple IDs for gene DAXX (['ENSG00000204209', 'ENSG00000229396', 'ENSG00000231617', 'ENSG00000227046', 'ENSG00000206279', 'ENSG00000206206'])\n",
      "Multiple IDs for gene FGF3 (['ENSG00000186895', 'ENSG00000261155'])\n",
      "Multiple IDs for gene ATRX (['ENSG00000085224', 'ENSG00000268946'])\n",
      "Multiple IDs for gene SDHD (['ENSG00000204370', 'ENSG00000255292'])\n",
      "Multiple IDs for gene HLA-A (['ENSG00000206503', 'ENSG00000223980', 'ENSG00000227715', 'ENSG00000224320', 'ENSG00000231834', 'ENSG00000229215', 'ENSG00000206505', 'ENSG00000235657'])\n",
      "Multiple IDs for gene IKBKE (['ENSG00000143466', 'ENSG00000263528'])\n",
      "No ID for gene CDKN2Ap14ARF\n",
      "Multiple IDs for gene KDM5C (['ENSG00000126012', 'ENSG00000269816'])\n",
      "No ID for gene FAM123B\n",
      "Multiple IDs for gene KMT2A (['ENSG00000118058', 'ENSG00000267910'])\n",
      "Multiple IDs for gene NOTCH4 (['ENSG00000204301', 'ENSG00000234876', 'ENSG00000223355', 'ENSG00000235396', 'ENSG00000232339', 'ENSG00000238196', 'ENSG00000206312'])\n",
      "Multiple IDs for gene MDC1 (['ENSG00000137337', 'ENSG00000231135', 'ENSG00000237095', 'ENSG00000224587', 'ENSG00000228575', 'ENSG00000234012', 'ENSG00000206481', 'ENSG00000225589'])\n",
      "No ID for gene CDKN2Ap16INK4A\n",
      "Multiple IDs for gene GATA1 (['ENSG00000102145', 'ENSG00000267841'])\n",
      "Multiple IDs for gene RBM10 (['ENSG00000182872', 'ENSG00000271352'])\n",
      "Multiple IDs for gene HIST2H3C (['ENSG00000203811', 'ENSG00000270827'])\n",
      "Multiple IDs for gene HIST2H3D (['ENSG00000183598', 'ENSG00000265133'])\n",
      "Multiple IDs for gene CD79A (['ENSG00000105369', 'ENSG00000272985'])\n",
      "Multiple IDs for gene PIK3R2 (['ENSG00000105647', 'ENSG00000268173'])\n"
     ]
    }
   ],
   "source": [
    "impact_gene_ids = []\n",
    "for impact_gene_name in impact_gene_names:\n",
    "    try:\n",
    "        ids = ensembl.gene_ids_of_gene_name(impact_gene_name)\n",
    "    except:\n",
    "        ids = []\n",
    "    if len(ids) == 0:\n",
    "        print(\"No ID for gene %s\" % impact_gene_name)\n",
    "    elif len(ids) > 1:\n",
    "        print(\"Multiple IDs for gene %s (%s)\" % (impact_gene_name, ids))\n",
    "    else:\n",
    "        impact_gene_ids.extend(ids)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from cohorts.functions import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "def missense_impact_snv_count(row, cohort, filter_fn=None, normalized_per_mb=None, **kwargs):\n",
    "    from cohorts.variant_filters import no_filter\n",
    "    filter_fn = first_not_none_param([filter_fn, cohort.filter_fn], no_filter)\n",
    "    normalized_per_mb = first_not_none_param([normalized_per_mb, cohort.normalized_per_mb], False)\n",
    "    \n",
    "    patient_id = row[\"patient_id\"]\n",
    "    def impact_filter_fn(filterable_effect):\n",
    "        if filter_fn is not None:\n",
    "            return (filter_fn(filterable_effect) and \n",
    "                    filterable_effect.effect.gene.id in impact_gene_ids)\n",
    "        return filterable_effect.effect.gene.id in impact_gene_ids\n",
    "    return missense_snv_count(row, cohort, filter_fn=impact_filter_fn)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'dataframe_hash': -2899676230513618006,\n",
      " 'provenance_file_summary': {u'cohorts': u'0.4.0+3.gda968fb',\n",
      "                             u'isovar': u'0.0.6',\n",
      "                             u'mhctools': u'0.3.0',\n",
      "                             u'numpy': u'1.11.1',\n",
      "                             u'pandas': u'0.18.1',\n",
      "                             u'pyensembl': u'1.0.3',\n",
      "                             u'scipy': u'0.18.1',\n",
      "                             u'topiary': u'0.1.0',\n",
      "                             u'varcode': u'0.5.10'}}\n"
     ]
    }
   ],
   "source": [
    "cohort = data.init_cohort()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from utils.paper import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "inner join with ensembl_coverage: 25 to 25 rows\n",
      "Mann-Whitney test: U=86.5, p-value=0.420406508069 (two-sided)\n",
      "{{{pfs_impact_missense_snv_count_plot}}}\n",
      "{{{pfs_impact_missense_snv_count_benefit:0.13 (range 0.00-0.31)}}}\n",
      "{{{pfs_impact_missense_snv_count_no_benefit:0.046 (range 0.00-0.37)}}}\n",
      "{{{pfs_impact_missense_snv_count_mw:n=25, Mann-Whitney p=0.42}}}\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAGHCAYAAABxrm/RAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVPX+x/HXAQRJhMBdcccltTBFTdNUcKlMsyxLve62\niFt1K6/dm1qW5tKm5q1MSy3XyrI0NRHX6l4119zCNRZXBERBYTi/P7zMT0RwGJkZlvfz8fDxYL5z\nls/Qifd8z/ec7zFM0zQRERGxg5urCxARkcJLISIiInZTiIiIiN0UIiIiYjeFiIiI2M3D1QU4U2pq\nKvv27aNcuXK4u7u7uhwRkQLPYrFw9uxZGjVqRMmSJbO9X6xCZN++ffTp08fVZYiIFDpfffUVISEh\n2dqLVYiUK1cOuPbLqFixoourEREp+E6dOkWfPn2sfz9vVKxCJPMUVsWKFQkMDHRxNSIihUdOQwAa\nWBcREbspRERExG4KERERsZtCRERE7KYQERERuylERETEbgoRERGxm0JERETsphARERG7KURERMRu\nLpn25NSpU0ycOJFffvkF0zRp1aoVr732GpUqVbrluvXr18/WZhgGy5cvv+l7IiLiOE7viaSmptKv\nXz+OHTvGlClTmDp1KsePH6d///6kpqbatI0ePXqwdOlS678lS5ZQs2ZNB1cucnvGjx+Pm5sbUVFR\nPPLII5QuXZoaNWowYcIE6zKXLl1ixIgRVK9enZIlS1KhQgU6derE4cOHXVi5SM6c3hNZsmQJMTEx\nrF69mqpVqwJQt25dOnfuzOLFixkwYMAtt1G+fHnuueceB1cqkr8MwwDg8ccfZ+DAgbz00kv88MMP\njBs3jmrVqtG/f39eeOEFfvzxRyZNmkRQUBDnz59n69atJCQkuLh6kZtzeohERkYSHBxsDRCAwMBA\nmjRpQkREhE0hIlJYGYbByy+/TL9+/QAIDQ0lIiKCRYsW0b9/f3777Tf69OmT5f+DRx991EXVitya\n009nRUVFUadOnWztQUFBHDlyxKZtLFq0iLvvvpvGjRvTv39/tm/fnt9lijjMww8/nOV1o0aNOHny\nJADNmjXjiy++YNKkSezYsYOMjAxXlChiM6eHSEJCAn5+ftna/fz8SEpKuuX6jz76KOPGjeOLL75g\nwoQJJCYmMmDAALZt2+aIckXyXUBAQJbXXl5e1vHAGTNm8Nxzz/H555/TvHlzypcvz0svvURKSoor\nShW5pUJ3ie/kyZN56KGHaNq0KV27duWrr76ifPnyfPjhh64uTeS2lSpVirfffpvDhw9z/Phx/vnP\nfzJz5kzefPNNV5cmclNODxE/Pz8SExOztScmJuLr65vn7ZUqVYq2bduyd+/e/ChPpMCoWrUqL774\nInfffTf79u1zdTkiN+X0gfWgoCCioqKytUdFRVG7dm1nlyNSoLRq1Ypu3bpx99134+Pjw4YNG9iz\nZw8DBw50dWkiN+X0nkhoaCi7d+8mOjra2hYdHc3OnTsJCwvL8/aSk5PZsGGDLvmVQiHzMt+c2h94\n4AGWLVvG3/72Nx555BG+/fZbPvjgA4YPH+7MMkVsZpimaTpzhykpKXTv3h0vLy9GjRoFwPTp00lJ\nSeH777/H29sbgNjYWDp06MDw4cMJDw8HYO7cuZw4cYIWLVpQtmxZYmJimDt3LsePH2fevHk0adIk\n131HR0cTFhZGREQEgYGBjv2gIiJFwK3+bjr9dJa3tzfz5s1j4sSJjB492jrtyZgxY6wBAmCapvVf\nppo1a7Ju3TrWrl3LxYsX8fHxoWnTpkyaNIlGjRo5+6OIiBR7Lpk7q2LFikyfPj3XZapUqcKBAwey\ntLVv35727ds7sjSx0aeffsrChQtdXYZIjnr37s2zzz7r6jKKvEJ3ia8UDAsXLmTXrl2uLkPkpnbt\n2qUvOU7ikp6IFA2NGzdmw4YNri5DJJt27dq5uoRiQz0RERGxm0JERETsphARERG7KURERMRuChER\nEbGbQkREROymEBEREbspRERExG4KERERsZtCRERE7KYQERERuylERETEbgoRERGxm0JERETsphAR\nERG7KURERMRuChEREbGbQkREROymEBEREbspRERExG4KERERsZtCRERE7KYQERERuylERETEbh6u\nLkAKp0GDBrm6BJEc6fh0HoWI2KVfv36uLkEkRzo+nUens0RExG4KERERsZtCRERE7KYQERERuylE\nRETEbgoRERGxm0JERETsphARERG7KURERMRuChEREbGbQkREROymEBEREbspRERExG4KERERsZtC\nRERE7GZ3iJw/f560tLT8rEVERAqZXEPkjz/+YMqUKbz11lv8+uuvACxbtoz77ruP1q1bExISwuTJ\nk/O801OnTjFy5EhCQkJo2rQpI0aMIC4uLs/b+fTTT6lfvz59+vTJ87oiInL7cnyy4fbt2xkwYAAW\n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\nAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fdb0f5fd790>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mann_whitney_hyper_label_printer(cohort.plot_benefit(on={\"# Missense SNVs / MB\":\n",
    "                                                         missense_impact_snv_count}),\n",
    "                                     label=\"pfs_impact_missense_snv_count\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mann-Whitney test: U=83.5, p-value=0.782189544288 (two-sided)\n",
      "{{{os_impact_missense_snv_count_plot}}}\n",
      "{{{os_impact_missense_snv_count_benefit:0.093 (range 0.00-0.31)}}}\n",
      "{{{os_impact_missense_snv_count_no_benefit:0.074 (range 0.00-0.37)}}}\n",
      "{{{os_impact_missense_snv_count_mw:n=25, Mann-Whitney p=0.78}}}\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZEAAAGHCAYAAABxrm/RAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlcVXX+x/HXAQRRhCB3cceldNIUMx3NBJdyy7IsdQS3\nakLUqZ/l2ExWY2lpZaE5rZZZ5lKZmksq4lrNqLnmUrjG5oZsKtvl/P4g7ogIXq5eLsv7+Xj0GO73\nnuUDc+XN+X6/53sM0zRNRERE7ODi7AJERKTsUoiIiIjdFCIiImI3hYiIiNhNISIiInZzc3YBJSk9\nPZ0DBw5Qo0YNXF1dnV2OiEipZ7FYOHv2LK1bt6Zy5coF3q9QIXLgwAGGDRvm7DJERMqcL774gsDA\nwALtFSpEatSoAeT+MGrXru3kakRESr+EhASGDRtm/f15tQoVInldWLVr18bf39/J1YiIlB2FDQFo\nYF1EROymEBEREbspRERExG4KERERsZtCRERE7KYQERERuylERETEbgoRERGxm0JERETsphARERG7\nOWXZk4SEBKZNm8YPP/yAaZp07tyZ559/njp16lx335YtWxZoMwyDZcuWXfM9ERFxnBK/EklPTyck\nJITjx48zY8YMZs6cyYkTJwgNDSU9Pd2mYwwaNIglS5ZY/1u8eDGNGzd2cOUiN+all17CxcWF6Oho\n+vXrR7Vq1WjUqBFTp061bnPx4kXGjRtHw4YNqVy5MrVq1aJXr178+uuvTqxcpHAlfiWyePFiYmNj\nWbt2LfXr1wegefPm9O7dm0WLFjFixIjrHqNmzZrccccdDq5U5OYyDAOAhx56iJEjR/LMM8+wcuVK\nXnzxRRo0aEBoaCh/+9vf+O6775g+fToBAQGcP3+e7du3k5SU5OTqRa6txEMkKiqKNm3aWAMEwN/f\nn3bt2hEZGWlTiIiUVYZhMHHiREJCQgAICgoiMjKSL7/8ktDQUH766SeGDRuW79/BAw884KRqRa6v\nxLuzoqOjadasWYH2gIAAjh49atMxvvzyS/70pz/Rtm1bQkND2blz580uU8Rh+vTpk+9169atOXXq\nFAAdOnTg008/Zfr06ezatYucnBxnlChisxIPkaSkJHx8fAq0+/j4kJKSct39H3jgAV588UU+/fRT\npk6dSnJyMiNGjGDHjh2OKFfkpvPz88v32sPDwzoeOHv2bJ588kk++eQT7rrrLmrWrMkzzzzD5cuX\nnVGqyHWVuSm+r7/+Ovfffz/t27enf//+fPHFF9SsWZN33nnH2aWJ3LCqVavy6quv8uuvv3LixAn+\n8Y9/MGfOHP71r385uzSRayrxEPHx8SE5OblAe3JyMt7e3sU+XtWqVenWrRv79++/GeWJlBr169fn\n6aef5k9/+hMHDhxwdjki11TiA+sBAQFER0cXaI+OjqZp06YlXY5IqdK5c2cGDBjAn/70J7y8vNi0\naRP79u1j5MiRzi5N5JpK/EokKCiIvXv3EhMTY22LiYlh9+7dBAcHF/t4aWlpbNq0SVN+pUzIm+Zb\nWPs999zD0qVL+ctf/kK/fv345ptvePvttwkPDy/JMkVsZpimaZbkCS9fvszAgQPx8PBgwoQJAERE\nRHD58mWWL1+Op6cnAHFxcfTo0YPw8HDCwsIAmDdvHidPnqRjx45Ur16d2NhY5s2bx4kTJ5g/fz7t\n2rUr8twxMTEEBwcTGRmJv7+/Y79REZFy4Hq/N0u8O8vT05P58+czbdo0Jk2aZF32ZPLkydYAATBN\n0/pfnsaNG7NhwwbWrVtHamoqXl5etG/fnunTp9O6deuS/lZERCo8p6ydVbt2bSIiIorcpl69ehw6\ndChfW/fu3enevbsjSxMbffDBByxcuNDZZYgUaujQoTzxxBPOLqPcK3NTfKV0WLhwIXv27HF2GSLX\ntGfPHv2RU0KcciUi5UPbtm3ZtGmTs8sQKeDee+91dgkVhq5ERETEbgoRERGxm0JERETsphARERG7\nKURERMRuChEREbGbQkREROymEBEREbspRERExG4KERERsZtCRERE7KYQERERuylERETEbgoRERGx\nm0JERETsphARERG7KURERMRuChEREbGbQkREROymEBEREbspRERExG4KERERsZtCRERE7KYQERER\nu7k5uwApm0aNGuXsEkQKpc9nyVGIiF1CQkKcXYJIofT5LDnqzhIREbspRERExG4KERERsZtCRERE\n7KYQERERuylERETEbgoRERGxm0JERETsphARERG7KURERMRuChEREbGbQkREROymEBEREbspRERE\nxG4KERERsZvdIXL+/HmysrJuZi0iIlLGFBkiv/zyCzNmzOCVV17hxx9/BGDp0qXcfffddOnShcDA\nQF5//fVinzQhIYHx48cTGBhI+/btGTduHPHx8cU+zgcffEDLli0ZNmxYsfcVEZEbV+iTDXfu3MmI\n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\nlE3qzpIKqUmTJvTq1YtPP/0UgLi4OOt7p0+fZu7cuWzbto3Tp09TpUoV2rRpw5NPPklgYKB1uwsX\nLhAREcHWrVs5d+4crq6u1KhRg1atWjFu3DgaNWoEQMuWLYHclZPHjBnD22+/zdGjR6levTpDhw5l\nzJgx+Wo7cuQI77//Pv/9739JSkrCy8uLtm3bMmbMmHznv7Kb7t1332Xbtm2sW7eOjIwM2rRpw5Qp\nU2jYsKF1+3Xr1jF//nyOHTtGWloaPj4+NGrUiODgYEaOHGnd7ujRo7z33nv85z//ITExEW9vbwID\nAxk7diwtWrS4Of8HSLmhEJEK68pl42699VYAjh07xtChQ0lKSrKufJyamsrWrVvZvn07b775Jvff\nfz8AkyZNYsuWLflWSD558iQnT55kwIAB1hCB3K60X3/9laeeesp63ri4ON544w0uX77MuHHjAPjp\np5944oknyMzMtB43OTmZTZs2sWXLFmbMmEG/fv3yfR+GYTB58mRSU1Otbdu3b+epp55i1apVGIbB\nvn37+Nvf/pbvez5//jznz58nPT3dGiI7d+5kzJgx+R7udOHCBdatW8fmzZuZN28e7du3t/MnLuWR\nurOkQjp69Cjr168Hch/g1b17dwBeffVVkpKS8Pb25rPPPmPfvn18//33NGnSBNM0mTp1KtnZ2UDu\nL1zDMOjZsyc7d+5k165drFixgkmTJlGrVq0C50xJSeHpp59m586dfPzxx1SuXBnIXYL/woULALz4\n4otkZWVhGAYvv/wyu3btsj6yNe/86enpBY5drVo1li9fztatW2nSpAkAx48fZ9++fQDs2rWLnJwc\nABYvXsyBAwfYvHkz7733Xr5QeuGFF8jIyKBu3bp888037N+/n2XLluHn50dmZib/+te/bsrPX8oP\nXYlIhXL1TK2GDRvy6quv4ufnR0ZGBj/99BOGYZCSksLw4cML7H/hwgUOHjzIHXfcgb+/P7/++iu7\nd+9m7ty5BAQE0Lx5c0JDQ6/53O9atWpZn93SuXNnevTowXfffUdWVhY7d+6kWbNmnDx5EsMwaNGi\nBYMHDwYgODiYe++9lw0bNpCSksLu3bvp1KlTvmOPGjWK5s2bA3DPPfdYH+8aGxtLmzZt8Pf3t277\n/vvv0759e5o0acIdd9xhfcbGyZMnOX78OIZhEBsby4MPPljge/j11185f/689cpNRCEiFcqVv9xN\n0yQ9PZ2srCwg91kUFovFOoOrsP3zrhpeeeUV/v73v3P8+HHmzZtn7SqqW7cuc+fOtY6F5Ll6GnHd\nunWtX1+4cCHfE/nyBv2vte21ntyXd/UBuVdWeTIzMwHo2bMnw4YN46uvvmLjxo1s3LgR0zRxdXXl\nscce44UXXuD8+fPX/Dld/f0nJSUpRMRKISIVytixY/nrX//K999/z3PPPcfp06cJDw9n1apV+Pr6\n4urqSk5ODg0bNmTt2rVFHuuOO+5g9erVxMXFcezYMQ4fPszcuXOJj4/njTfe4KOPPsq3/enTp/O9\nvnIw39fXN98v5isfmHT162s9utXN7X//lAsLgBdeeIFJkyZx5MgRTp48ycqVK9m8eTMLFy5kwIAB\n+c7fuXNnPv7446K+fRFAYyJSAbm5udG3b1+GDh0KwKVLl3jjjTfw8PDg7rvvxjRNTp48ycyZM62P\nZT127BiffPIJoaGh1uPMmjWLqKgoXFxc6NixI/fddx8+Pj6YplkgBAASEhL48MMPuXjxItu3b2fD\nhg0AVKpUicDAQBo2bEijRo0wTZMjR46wZMkSLl26xMaNG4mKigLA29ubO++8s9jf844dO/jwww85\nduwYjRo1olevXrRp08b6flxcXL7z//jjj8yfP5/U1FQyMzM5fPgwc+bMyffYYxHQlYhUYGFhYXzz\nzTdcvHiR1atXM2bMGJ5//nmGDRtGcnIyH3/8cYG/xuvVq2f9es2aNbz//vsFjmsYBl27di3Q7ufn\nxzvvvMObb76Zb9snnngCX19fAF5++WXr7KwpU6YwZcoU67aurq5MmTLFOiBfHPHx8bz55pv5zp2n\nSpUq1hlXU6dO5fHHHycjI4Pp06czffr0fNveddddxT63lG+6EpEK4VpdPL6+vowePRrDMDBNk7fe\neoumTZuyfPlyhgwZQoMGDXB3d8fb25tmzZrxyCOP8PLLL1v3/8tf/kKnTp2oVasW7u7uVK5cmWbN\nmjF+/HieffbZAudr2rQpH3zwAa1bt8bDw4O6devy7LPP5nvufceOHVm6dCl9+vShRo0auLm5ccst\nt9C9e3cWLFhA3759C3xf1/rerm5v1aoVgwYNIiAgAG9vb9zc3PDz8yMoKIjPPvuMmjVrArn3snz9\n9dcMHDiQOnXqUKlSJW655RZatmxJSEgIzzzzTPF/+FKu6RnrIg7WsmVLDMOgQ4cOfPbZZ84uR+Sm\n0pWISAnQ32pSXmlMRMTB8rqVCps1JVKWqTtLRETspu4sERGxm0JERETsphARERG7KURERMRuChER\nEfVABSsAAAANSURBVLGbQkREROz2/xw0p9XxHrhIAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fdb0fced610>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mann_whitney_hyper_label_printer(cohort.plot_benefit(on={\"# Missense SNVs / MB\": \n",
    "                                                         missense_impact_snv_count},\n",
    "                                                     benefit_col=\"is_benefit_os\"),\n",
    "                                     label=\"os_impact_missense_snv_count\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
